package org.example.pojo;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import java.time.LocalDateTime;
import java.io.Serializable;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

/**
 * <p>
 * 作品表，存储用户发布的作品信息及相关属性
 * </p>
 *
 * @author zhx
 * @since 2025-01-18
 */
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("works")
public class Works implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 作品ID，主键，自增整数，唯一标识每个作品
     */
    @TableId(value = "work_id", type = IdType.AUTO)
    private Integer workId;

    /**
     * 用户ID，外键，关联用户表，标识作品的发布者
     */
    @TableField("user_id")
    private Integer userId;

    /**
     * 作品标题，字符串，作品的标题
     */
    @TableField("work_title")
    private String workTitle;

    /**
     * 作品内容，文本，存储作品的详细内容，如文章、对话等
     */
    @TableField("work_content")
    private String workContent;

    /**
     * 作品图片，字符串，存储作品相关图片的路径或链接
     */
    @TableField("work_image")
    private String workImage;

    /**
     * 发布时间，日期时间，记录作品发布的时间
     */
    @TableField("publish_time")
    private LocalDateTime publishTime;

    /**
     * 点赞数，整数，记录作品获得的点赞数量，默认值为0
     */
    @TableField("like_count")
    private Integer likeCount;

    /**
     * 分享数，整数，记录作品被分享的次数，默认值为0
     */
    @TableField("share_count")
    private Integer shareCount;

    /**
     * 审核状态，字符串，标识作品的审核状态，如“审核中”“审核失败”等
     */
    @TableField("review_status")
    private String reviewStatus;

    /**
     * 分类标签，字符串，用于标识作品的分类
     */
    @TableField("category_tag")
    private String categoryTag;

    /**
     * 用户昵称
     */
    @TableField("nickname")
    private String nickname;
    /**
     * 头像，字符串，存储用户头像的路径或链接
     */
    @TableField("avatar")
    private String avatar;
}
